|
Расположение в меню |
---|
Web Tools → Git |
Верстаки |
WebTools - ВебИнструменты |
Быстрые клавиши |
Нет |
Представлено в версии |
0.17 |
См. также |
Нет |
Этот инструмент позволяет тебе управлять документом используя Git. Git является мощной системой контроля версий, которая может управлять различными версиями файлов и отслеживать их изменения.
Git довольно сложный инструмент, тебе лучше изучить его основы, перед использованием этого инструмента, чтобы избежать потерь данных. Всеобъемлющая литература о Git легко находится в интернете.
Необходимое условие: Чтобы иметь возможность пользоваться данным инструментом, пакет gitpython должен быть установлен в твоей системе. В большинстве linux дистрибутивов, gitpython есть в стандартном репозитории под названием gitpython или python-git.
git log
.git diff
.
fcinfo
.
Формат файлов FreeCAD FCStd - это бинарный формат на основе zip, для которого Git не может создавать корректные описания расхождений. Это означает, что вы не можете увидеть, что изменилось между одной версией и другой, а также то, что каждая новая версия, хранящаяся в репозитории Git, является полной копией файла.
Хотя вторая проблема в настоящее время не имеет решения, первая может быть решена с помощью небольшого инструмента, доступного из исходного кода FreeCAD, который называется fcinfo. Git можно попросить использовать утилиту fcinfo для печати удобного для человека отчёта о файле FCStd, а когда его попросят вывести разницу между двумя файлами FCStd, он выдаст вместо этого разницу между двумя отчётами fcinfo. Обратите внимание, что это только визуальная обратная связь, полная копия файла будет по-прежнему храниться внутри программы.
Пример diff, созданного с помощью fcinfo:
diff --git a/testhouse.FcStd b/testhouse.FcStd
index 08077b6..985b1d8 100644
--- a/testhouse.FcStd
+++ b/testhouse.FcStd
@@ -1,26 +1,25 @@
-Document: /tmp/43un09_testhouse.FcStd (442K)
- SHA1: 67c1985a45d93cba57d5bf44490897aba460100d
+Document: /tmp/zfXoDd_testhouse.FcStd (370K)
+ SHA1: db1cb5fca18af7bfdca849028f40550df4d845cb
Comment : This is a test house to showcase FreeCAD's BIM worflow and IFC export capabilities
Company : uncreated.net
CreatedBy : Yorik van Havre
CreationDate : Fri May 9 12:05:54 2014
FileVersion : 1
Id :
- Label : testhouse
- LastModifiedBy : Yorik van Havre
- LastModifiedDate : 2016-06-28T17:05:57-03:00
+ Label : testhouse2
+ LastModifiedBy : Yorik van Havre
+ LastModifiedDate : Sat Sep 13 20:46:36 2014
+
License : CC-BY 3.0
LicenseURL : http://creativecommons.org/licenses/by/3.0/
- ProgramVersion : 0.17R7800 (Git)
- TipName :
+ ProgramVersion : 0.15R3989 (Git)
Uid : 67e62d8a-6674-4358-92fe-615443be887a
- Objects: (231)
+ Objects: (221)
Annotation : Drawing::FeatureViewAnnotation
Annotation001 : Drawing::FeatureViewAnnotation
Annotation002 : Drawing::FeatureViewAnnotation
Annotation003 : Drawing::FeatureViewAnnotation
- Annotation004 : Drawing::FeatureViewAnnotation
- Annotation005 : Drawing::FeatureViewAnnotation
Array : Part::FeaturePython (9K)
Box : Part::Box (2K)
Building : App::DocumentObjectGroupPython
@@ -110,7 +109,7 @@ Document: /tmp/43un09_testhouse.FcStd (442K)
Floor : App::DocumentObjectGroupPython
Floor001 : App::DocumentObjectGroupPython
Floor002 : App::DocumentObjectGroupPython
- Frame : Part::FeaturePython (89K)
Каждый файл FreeCAD содержит контрольную сумму SHA1, которая будет меняться каждый раз при сохранении файла, даже если его содержимое не менялось. Поэтому fcinfo всегда будет что-то выводить, независимо от изменения содержимого.
Чтобы включить использование fcinfo (только для Linux и Mac - TODO: добавить инструкции для Windows)
Вот шаги, позволяющие использовать инструмент fcinfo в хранилище.
fcinfo
включён в пакет freecad
, обновление здесь.fcinfo
доступен по адресу /usr/bin/fcinfo
..gitattributes
в своём Git-репозитории и добавь в него следующую строку:*.FCStd diff=fcinfo
.gitconfig
в своём домашнем каталоге:[diff "fcinfo"]
textconv = /path/to/fcinfo
--gui
), используй этот подход:[diff "fcinfo"]
textconv = sh -c '/path/to/fcinfo --gui "$0"'XD
Обрати внимание, что если ты работаешь в совместном проекте, ты можешь захотеть включить инструмент fcinfo в ваш репозиторий, в этом случае путь будет относительным к корневому каталогу вашего Git-репозитория.
Если ты работаешь над многими проектами, которым нужен инструмент fcinfo, ты можешь включить его глобально для своего пользователя.
$HOME/.config/git/attributes
и добавьте в него следующую строку:*.FCStd diff=fcinfo
$HOME/.config/git/config
:
git config --global diff.fcinfo.textconv "/path/to/fcinfo"
.freecad
, могут использовать {{{1}}}
, так как он уже установлен в их системе.[diff "fcinfo"]
textconv = /path/to/fcinfo
Обрати внимание, что любая настройка, выполненная на основе репозитория, отменяет глобальные конфигурации.